class DEFAULT_CONFIGURATION_DICTIONARY:
    def __init__(self):
        self.data = [
            {
                "key": "listen",
                "default": "NO",
                "description": "以独立模式运行（非 inetd/xinetd）"
            },
            {
                "key": "listen_ipv6",
                "default": "NO",
                "description": "启用 IPv6 监听（与 `listen` 冲突，只能选一个）"
            },
            {
                "key": "anonymous_enable",
                "default": "NO",
                "description": "允许匿名登录（用户 `ftp` 或 `anonymous`）"
            },
            {
                "key": "local_enable",
                "default": "NO",
                "description": "允许本地用户登录（`/etc/passwd` 中的用户）"
            },
            {
                "key": "write_enable",
                "default": "NO",
                "description": "允许 FTP 写操作（上传、删除、重命名等）"
            },
            {
                "key": "dirmessage_enable",
                "default": "NO",
                "description": "进入目录时显示 `.message` 文件内容"
            },
            {
                "key": "xferlog_enable",
                "default": "NO",
                "description": "启用传输日志（记录上传/下载）"
            },
            {
                "key": "connect_from_port_20",
                "default": "YES",
                "description": "使用 20 端口进行主动模式数据连接"
            }, {
                "key": "secure_chroot_dir",
                "default": "NO",
                "description": "如果指向的目录不存在或权限不正确，则拒绝启动"
            },
            {
                "key": "chroot_local_user",
                "default": "NO",
                "description": "将本地用户限制在其家目录（chroot）"
            },
            {
                "key": "chroot_list_enable",
                "default": "NO",
                "description": "启用例外列表（`chroot_list_file` 中的用户不受限制）"
            },
            {
                "key": "chroot_list_file",
                "default": "/etc/vsftpd/chroot_list",
                "description": "指定不受 chroot 限制的用户列表"
            },
            {
                "key": "allow_writeable_chroot",
                "default": "NO",
                "description": "允许 chroot 目录可写（存在安全风险）"
            },
            {
                "key": "local_root",
                "default": "",
                "description": "设置本地用户的默认根目录"
            },
            {
                "key": "anon_root",
                "default": "",
                "description": "设置匿名用户的默认根目录"
            },
            {
                "key": "hide_ids",
                "default": "NO",
                "description": "隐藏文件所有者和组信息（显示为 `ftp`）"
            },
            {
                "key": "max_clients",
                "default": "0",
                "description": "最大并发客户端数（0 表示无限制）"
            },
            {
                "key": "max_per_ip",
                "default": "0",
                "description": "每个 IP 的最大并发连接数（0 表示无限制）"
            },
            {
                "key": "local_max_rate",
                "default": "0",
                "description": "本地用户最大传输速率（字节/秒，0 表示无限制）"
            },
            {
                "key": "anon_max_rate",
                "default": "0",
                "description": "匿名用户最大传输速率（字节/秒，0 表示无限制）"
            },
            {
                "key": "idle_session_timeout",
                "default": "300",
                "description": "空闲会话超时（秒）"
            },
            {
                "key": "data_connection_timeout",
                "default": "300",
                "description": "数据传输超时（秒）"
            },
            {
                "key": "accept_timeout",
                "default": "60",
                "description": "PASV 模式等待客户端连接超时（秒）"
            },
            {
                "key": "connect_timeout",
                "default": "60",
                "description": "客户端连接 FTP 端口超时（秒）"
            },
            {
                "key": "pasv_enable",
                "default": "YES",
                "description": "启用被动模式（PASV）"
            },
            {
                "key": "pasv_min_port",
                "default": "0",
                "description": "被动模式最小端口号（0 表示随机）"
            },
            {
                "key": "pasv_max_port",
                "default": "0",
                "description": "被动模式最大端口号（0 表示随机）"
            },
            {
                "key": "pasv_address",
                "default": "",
                "description": "服务器公网 IP（用于 NAT 环境）"
            },
            {
                "key": "pasv_promiscuous",
                "default": "NO",
                "description": "禁用 PASV 安全检查（不推荐）"
            },
            {
                "key": "userlist_enable",
                "default": "NO",
                "description": "启用用户列表（`userlist_file`）"
            },
            {
                "key": "userlist_deny",
                "default": "YES",
                "description": "拒绝 `userlist_file` 中的用户登录"
            },
            {
                "key": "userlist_file",
                "default": "/etc/vsftpd/user_list",
                "description": "用户列表文件路径"
            },
            {
                "key": "deny_email_enable",
                "default": "NO",
                "description": "禁止匿名用户使用某些邮箱（`banned_email_file`）"
            },
            {
                "key": "banned_email_file",
                "default": "/etc/vsftpd/banned_emails",
                "description": "禁止的匿名用户邮箱列表"
            },
            {
                "key": "xferlog_file",
                "default": "/var/log/vsftpd.log",
                "description": "传输日志文件路径"
            },
            {
                "key": "xferlog_std_format",
                "default": "NO",
                "description": "使用标准 wu-ftpd 日志格式"
            },
            {
                "key": "log_ftp_protocol",
                "default": "NO",
                "description": "记录所有 FTP 命令（调试用）"
            },
            {
                "key": "ftpd_banner",
                "default": "",
                "description": "自定义 FTP 登录欢迎信息"
            },
            {
                "key": "banner_file",
                "default": "",
                "description": "从文件读取欢迎信息（覆盖 `ftpd_banner`）"
            },
            {
                "key": "ssl_enable",
                "default": "NO",
                "description": "启用 SSL/TLS 加密"
            },
            {
                "key": "allow_anon_ssl",
                "default": "NO",
                "description": "允许匿名用户使用 SSL"
            },
            {
                "key": "force_local_logins_ssl",
                "default": "NO",
                "description": "强制本地用户使用 SSL 登录"
            },
            {
                "key": "force_local_data_ssl",
                "default": "NO",
                "description": "强制本地用户使用 SSL 数据传输"
            },
            {
                "key": "rsa_cert_file",
                "default": "/etc/ssl/certs/ssl-cert-snakeoil.pem",
                "description": "SSL 证书路径"
            },
            {
                "key": "rsa_private_key_file",
                "default": "/etc/ssl/private/ssl-cert-snakeoil.key",
                "description": "SSL 私钥路径"
            },
            {
                "key": "ssl_ciphers",
                "default": "",
                "description": "指定 SSL 加密算法（如 `HIGH`）"
            },
            {
                "key": "async_abor_enable",
                "default": "NO",
                "description": "允许异步 ABOR 命令（兼容性选项）"
            },
            {
                "key": "ascii_upload_enable",
                "default": "NO",
                "description": "允许 ASCII 模式上传"
            },
            {
                "key": "ascii_download_enable",
                "default": "NO",
                "description": "允许 ASCII 模式下载"
            },
            {
                "key": "check_shell",
                "default": "YES",
                "description": "检查本地用户是否有有效 shell（`/etc/shells`）"
            },
            {
                "key": "ls_recurse_enable",
                "default": "NO",
                "description": "允许 `ls -R` 递归列出目录"
            },
            {
                "key": "text_userdb_names",
                "default": "NO",
                "description": "显示用户名而非 UID/GID"
            },
            {
                "key": "use_localtime",
                "default": "NO",
                "description": "使用本地时间而非 UTC 显示文件时间"
            },
            {
                "key": "pam_service_name",
                "default": "ftp",
                "description": "指定 PAM 服务名"
            },
            {
                "key": "guest_enable",
                "default": "NO",
                "description": "启用虚拟用户（需配合 `virtual_use_local_privs`）"
            },
            {
                "key": "guest_username",
                "default": "ftp",
                "description": "虚拟用户映射到的系统用户"
            },
            {
                "key": "virtual_use_local_privs",
                "default": "NO",
                "description": "虚拟用户使用本地用户权限"
            }
        ]

    def get_object_by_key(self, key: str) -> dict | None:
        for item in self.data:
            if item["key"] == key:
                return item
        return None
